home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ADV350.ZIP / a5toa1.for next >
Text File  |  1990-11-18  |  1KB  |  48 lines

  1.       SUBROUTINE A5TOA1(A,B,C,CHARS,LENG)
  2.       
  3. C
  4. C  IN ORDER TO WORK ON A PDP-11, THIS HAS BEEN CHANGED TO BE
  5. C  AN A4 TO A1 CONVERSION ROUTINE.
  6. C  A AND B CONTAIN A 1- TO 8-CHARACTER WORD IN A4 FORMAT, C CONTAINS ANOTHER
  7. C  WORD AND/OR PUNCTUATION.  THEY ARE UNPACKED TO ONE CHARACTER PER WORD IN THE
  8. C  ARRAY "CHARS", WITH EXACTLY ONE BLANK BETWEEN B AND C (OR NONE, IF C'S 100
  9. C  BIT IS OFF).
  10. C  THE INDEX OF THE LAST NON-BLANK CHAR IN CHARS IS RETURNED IN LENG.
  11. C
  12. C  HERE WE HAVE ABANDONED THE FORTRAN 66 VERSION AND WRITTEN A NEW VERSION
  13. C  USING THE STRING OPERATORS OF FORTRAN 77.
  14.  
  15.       IMPLICIT INTEGER*4 (A-Z)
  16.       CHARACTER*4 WORDS(3)
  17.       LOGICAL PUN
  18.       CHARACTER CHARS * (*)
  19. C
  20. C  PUN IS TRUE IF AND ONLY IF WE DO HAVE A PUNCTUATION CHARACTER IN C.
  21. C
  22.       PUN=(C.AND.8#100).NE.8#100
  23.       
  24.       WORDS(1)=A
  25.       WORDS(2)=B
  26.       WORDS(3)=C
  27.       CHARS=' '
  28.       K=1
  29.       LENG=1
  30.       INDX=0
  31.       DO 1 I=1,3
  32.       IF(I.EQ.3.AND..NOT.PUN) THEN
  33.          CHARS(K:K)=' '
  34.          K=K+1
  35.          LENG=LENG+1
  36.          INDX=INDX+1
  37.       ENDIF
  38.       IF(WORDS(I).NE.' ') THEN
  39.          CALL SHIFTC('LEFT',WORDS(I))
  40.          INDX=LCHAR(WORDS(I))+INDX
  41.          CHARS(K:INDX)=WORDS(I)
  42.          LENG=INDX
  43.          K=INDX+1
  44.       ENDIF
  45.     1 CONTINUE
  46.       RETURN
  47.       END
  48.